package com.copc.mq.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;

@Slf4j
public class ConfirmMessageCallback implements RabbitTemplate.ConfirmCallback {
    /**
     * 交换机无论是否收到消息的回调方法
     *
     * @param correlationData 消息相关数据
     * @param ack             交换机是否收到消息
     * @param cause           原因
     */
    @Override
    public void confirm(CorrelationData correlationData, boolean ack,String cause) {
        String id = correlationData != null ? correlationData.getId() : "";
        if (ack) {
            log.info("交换机已收到 id={} 的消息", id);
        } else {
            log.info("交换机未收到 id={} 的消息，原因:{}", id, cause);
        }
    }
}
